import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
//前端给后端传递数据是很常见的，getParameter就是获取前端传过来的query string的，
//就是根据key来获取value的
//这个方法也是最常用的一种方法
/*前端发过来的数据的携带方式有三种方法：1.query string 2.通过body传递(form)*/
@WebServlet("/getParameter")
public class GetParameter extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //前端通过url的query String传递 username 和 password 两个属性
        String userName = req.getParameter("name");
        if (userName == null) {
            System.out.println("username 这个key在query string 中是不存在的!");
        }
        String password = req.getParameter("password");
        if (password == null) {
            System.out.println("password 这个 key 在 query string 中是不存在的!");
        }
        System.out.println("username = " + userName +", " + "password = " + password);
        resp.getWriter().write("ok");
    }

    //2.通过body(form)携带数据，一般是post方法才带有body，所以构造一个post方法进行
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //前端通过body，以form表单的格式，把 username 和password 传给服务器
        //注意，这里前端的数据的value值如果是中文的，可能会导致后端服务器在进行解析的时候
        //乱码，虽然前端的数据大部分都是utf8进行编码的，但是后端是不知道是什么方式来进行编码的
        //此时就需要显示的告诉服务器前端是以utf8来编码的
        req.setCharacterEncoding("utf8");//这里是给请求设置编码方式
        String username = req.getParameter("name");
        String password = req.getParameter("password");
        if (username == null) {
            System.out.println("userName为null！");
        }
        if (password == null) {
            System.out.println("passWord为null");
        }
        System.out.println("userName=" + username +", " + "passWord=" + password);
        resp.getWriter().write("ok");
    }
    //通过body（json）json存储的也是键值对的格式，但是Servlet没有内置json解析的功能
    //所以需要引入第三方库

}
